import request from "@/utils/request.ts"
// TODO  角色信息管理
// 获取所有角色
export function getAllRole() {
    return request({
        url: "/api/role",
        method: 'get'
    })
}

/**
 * 添加角色
 * @param roleName 角色名字
 */
export function addRoleRequest(roleName: null | string) {
    return request({
        url: "/api/role",
        method: 'post',
        data: {roleName}
    })
}

/**
 * 更新角色信息
 * @param roleId 角色id
 * @param roleName 角色名字
 */
export function updateRoleRequest(roleId: string | null, roleName: string | null) {
    return request({
        url: `/api/role/${roleId}`,
        method: 'post',
        data: {roleId, roleName}
    })
}

// 删除角色信息
export function deleteRoleRequest(roleId: string) {
    return request({
        url: `/api/role/${roleId}`,
        method: 'delete'
    })
}

// TODO 角色菜单管理
/**
 * 更新角色的菜单绑定
 * @param roleId 角色id
 * @param roleMenuDTOs
 */
export function updateRoleMenuRel(roleId: number | undefined, roleMenuDTOs: { menuId: number, menuLevel: string }[]) {
    return request({
        url: `/api/roleMenuBind/${roleId}`,
        method: 'post',
        data: roleMenuDTOs
    })
}

// 获取角色所拥有的菜单
export function getRoleMenuRel(roleId: number) {
    return request({
        url: `/api/roleMenuBind/${roleId}`,
        method: 'get'
    })
}

// TODO角色用户关联
// 获取用户绑定的角色Id
export function getUserRoleByUserId(userId: string) {
    return request({
        url: `/api/userRoleBind/${userId}`,
        method: 'get'
    })
}

// 添加（绑定）用户角色关联
export function addRoleUserRel(roleId: string, userId: string) {
    return request({
        url: "/api/userRoleBind",
        method: 'post',
        data: {
            roleId, userId
        }
    })
}

// 删除（解绑）用户角色关联
export function deleteRoleUserRel(roleId: string, userId: string) {
    return request({
        url: "/api/userRoleBind",
        method: 'delete',
        data: {
            roleId, userId
        }
    })
}
